package org.posupe.candidatos;

import java.util.Date;

import org.posupe.util.Endereco;

public class Candidato {

	private String cpf;

	private String nome;

	private Endereco endereco;

	private String telefoneResidencial;

	private String telefoneComercial;

	private String telefoneCelular;

	private Date dataNascimento;

	private char sexo;

	public Candidato(String cpf, String nome, Endereco endereco,
			String telefoneResidencial, String telefoneComercial,
			String telefoneCelular, Date dataNascimento, char sexo) {
		this.cpf = cpf;
		this.nome = nome;
		this.endereco = endereco;
		this.telefoneResidencial = telefoneResidencial;
		this.telefoneComercial = telefoneComercial;
		this.telefoneCelular = telefoneCelular;
		this.dataNascimento = dataNascimento;
		this.sexo = sexo;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public Date getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public char getSexo() {
		return sexo;
	}

	public void setSexo(char sexo) {
		this.sexo = sexo;
	}

	public String getTelefoneCelular() {
		return telefoneCelular;
	}

	public void setTelefoneCelular(String telefoneCelular) {
		this.telefoneCelular = telefoneCelular;
	}

	public String getTelefoneComercial() {
		return telefoneComercial;
	}

	public void setTelefoneComercial(String telefoneComercial) {
		this.telefoneComercial = telefoneComercial;
	}

	public String getTelefoneResidencial() {
		return telefoneResidencial;
	}

	public void setTelefoneResidencial(String telefoneResidencial) {
		this.telefoneResidencial = telefoneResidencial;
	}

	public boolean match(Candidato candidato) {
		boolean retorno = true;

		if (candidato != null) {
			if (this.cpf != null && candidato.cpf != null && retorno) {
				retorno = this.cpf.equals(candidato.getCpf());
			}
			if (this.nome != null && candidato.nome != null && retorno) {
				retorno = this.nome.contains(candidato.getNome());
			}
			if (this.telefoneResidencial != null
					&& candidato.telefoneResidencial != null && retorno) {
				retorno = this.telefoneResidencial.equals(candidato
						.getTelefoneResidencial());
			}
			if (this.telefoneComercial != null
					&& candidato.telefoneComercial != null && retorno) {
				retorno = this.telefoneComercial.equals(candidato
						.getTelefoneComercial());
			}
			if (this.telefoneCelular != null
					&& candidato.telefoneCelular != null && retorno) {
				retorno = this.telefoneCelular.equals(candidato
						.getTelefoneCelular());
			}
			if (this.dataNascimento != null && candidato.dataNascimento != null
					&& retorno) {
				retorno = this.dataNascimento.equals(candidato
						.getDataNascimento());
			}
		} else {
			retorno = false;
		}

		return retorno;
	}

	public String toString() {
		return "" + this.cpf + " - " + this.nome + " - "
				+ this.endereco.toString() + " - " + this.telefoneCelular
				+ " - " + this.telefoneComercial + " - "
				+ this.telefoneResidencial;
	}

}
